Rасательно вопроса как добавить в книгу заклинаний больше 12 скиллов - можно добавить книгу в книгу и новой книге сделать ещё несколько скиллов и ещё 1 или несколько книг. В каждую книгу можно ещё по книге и так далее.
Главное - ID приказа у всех книг должны быть разные.
Иконки способностей кольца, когтей и т.д. отображаться не будут, ты можешь отображать скиллы-пустышки, а (только это на всякий случай предложенный вариант!) герою выдавать сам предмет, предварительно вытряхнув из его инвентаря все предметы на пол. После добавления в пустой инвентарь нужного предмета, например когтей - заполняем ещё 4 слота предметами-пустышками, затем даём предмет со способностью "предметы герой", у этой способности для предмета должна стоять галочка "относится к предмету", обязательно. После этого инвентарь снова очистится уже сам, однако добавленный предмет на атаку будет иметь эффект. После чего можно подобрать с пола предметы героя и отдать ему триггерно.
Почему не стоит добавлять способность когтей триггерно? - потому что 2 добавленные одинаковые способности не суммируются. Два одинаковых предмета же суммируются.
Есть ли минусы у вышеописанного способа? - скорее всего удалить добавленный бонус нормально не выйдет. Придётся вытряхать инвентарь удалением способности "предметы герой" у самого героя, а это тот ещё геморрой -восстановить потом всё, что должно было остаться неудалённым.
через obj не над там копируються вершины а то и несколько раз и слои слепляются в 1,3ds и через милкшарп,еси напрямую в мделвис то uv будет зекальна по y,а лутше перкинуть через макс(еси есть)
ну полигонам то укладывайся в 10к на супер хд моделей
материал ты не как не перенесешь только текстуру
материалы для вара создаются в warcraft model editor
Тебе нужно изменить у способностей одну строку, которая называется базовый ID приказа (+порядок строк). Просто, если он одинаковый, то срабатывают все неправильно, если у героя все способности канала с одинаковым ID.
orc01, ну она не так называется 'AEpa' - Отравленные стрелы, находится у героев нейтралов. Абилка очень известная, из неё обычно делают все триггерные автокасты, в доте это стрелы хускары, копья энчанты, орб дестроера и глейвы сайленсера. Кароче все автокаст орбы принято делать из этой абилки.
Кстати совсем забыл - еще раз для всех кто не осознал, никак нельзя сменить механику и тип прицела стандартной способности в редакторе обьектов, ну вот никак, ваще никак, совсем никак, невозможно сделать из канала криты, а из критов активку, ни получится добавить к стрелам эффект молнии, а к молотку бурь безмолвие вместо оглушения. Все способности по своему уникальны (не будем считать клонов), исходя из ваших потребностей, выбирайте соответствующую основу.
Очень геморойно, но суть там проста - перемещение плавным перемещением к юниту и атака его, если это крип то герою вручают абилку снижающую урон, а если не крип то абилку повышающую силу атаки (способность боевых когтей), ну собственно и все. Но вот в гуях низя использовать нормально таймеры да и будут утечки с группой и локейшинами, если делать по проще.
Да еще у этой способности в доте есть существенный баг, если атаковать кого и сразу же применить способность - то герой не атакует первого врага в области действия способности, ибо его атака еще не перезарядилась а боносу скорости будет работать только на следующую.
Увы вылечить это можно мемхаком (на гуи исключен) или вторым(дамми) героем, который бы атаковал врагов вместо оригинала.
Можешь попробовать найти jass версии на хайве, вроде скиллы эмбер спирита уже делали.
IGOREIK, там четыре события на применение способности.
Пробуй разные, выбери, какое подойдёт лучше.
Вариант 8gabriel8 лучше. Немного дополню. Можно найти модель спецэффекта, который применяется во время включения способности. Посмотреть редакторами моделей (War3ME, например), какой там звук используется. И прописать импортированному звуку этот путь.
Можно создать допольнительного бота, который будет союзником 1 и 2 игроку, но врагом 3 и 4. ну и собственно дается общий контроль на этого бота.
Игрок - Make игрок 1 treat игрок 2 as an игроки с общими войсками
так как там нет геометрии (а только источники частиц), то так просто в один клик не рассчитываются границы
надо вручную создавать объект "форма" с нужным радиусом и координатами, в редакторе узлов model editor'а
достаточно сделать 2 модели 1 - это верхняя часть юнита до пояса с анимациями атаки и прочего с руками. 2я - модель это нижняя часть юнита от пояса, тобиш ноги с анимкой хотьбы бега и прочего. добавляешь в карту, соединяешь, пишеш триггеры и все готово.
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе
В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.
Только там такой срач и дичь, что лучше реально своими руками с нуля писать...
Ах, я понял чего ты хочешь конкретно сейчас. Чтобы модель смотрела в камеру, словно на экране выбора персонажа? В таком случае ситуация немного упрощается.
Нам больше не нужно хранить текущую матрицу поворота эффекта, ведь мы не производим ее вращение, вместо этого мы высчитывает всю необходимую ориентацию из положения камеры и самого эффекта. Подход, в целом, остается прежним, но для поиска осей ориентации мы теперь будем использовать некоторый вспомогательный вектор, чье направление совпадает с направлением глобальной оси Z, и путем векторного произведения этого вспомогательного вектора на вектор оси X эффекта (получаемый как и прежде p2 - p1) мы получаем вектор ориентации эффекта Y, а векторное произведение X на Y нам даст ось Z эффекта.
Весь процесс можно разжевать на множество абзацев, но делать этого нет смысла. Я проще скину твою карту с новым вариантом.
Тем не менее, я вижу некоторое непонимание темы и потому считаю должным указать на некоторые ошибки в твоем прошлом коде
Код
private function RotationMatrixToEuler takes MATRIX3 R returns VECTOR3
local real x
local real y
local real z
local real sy = SquareRoot(R.m11 * R.m11 + R.m21 * R.m21)
local boolean singular = sy < .000001 or sy == 0 // If
if not singular then
set x = Atan2(R.m32 , R.m33)
set y = Atan2(-R.m31, sy)
set z = Atan2(R.m21, R.m11)
else
set x = Atan2(-R.m23, R.m22)
set y = Atan2(-R.m31, sy)
set z = 0
endif
return VECTOR3.New_1(x, y, z)
endfunction
Я не понимаю, как работает эта функция. В моем понимании, преобразование матрицы поворота в углы Эйлера происходит за счет обратного преобразования. То есть, чтобы преобразовать матрицу в Эйлер, необходимо знать как преобразуется Эйлер в матрицу, поскольку это обратные друг другу процессы. В новом примере я ее переписал.
Код
set rotation.m11 = X.x
set rotation.m12 = X.y
set rotation.m13 = X.z
set rotation.m21 = Y.x
set rotation.m22 = Y.y
set rotation.m23 = Y.z
set rotation.m31 = Z.x
set rotation.m32 = Z.y
set rotation.m33 = Z.z
Здесь идет неверное назначение параметров матрицы. Дело в том, что матрица записывается следующим образом (из readme библиотеки Math)
m11 m12 m13
m21 m22 m23
m31 m32 m33
При этом, оси записываются слева направо, столбиками, то есть , ось X здесь, это m11, m21 и m31. Следовательно верной записью будет
Код
set rotation.m11 = X.x
set rotation.m21 = X.y
set rotation.m31 = X.z
set rotation.m12 = Y.x
set rotation.m22 = Y.y
set rotation.m32 = Y.z
set rotation.m13 = Z.x
set rotation.m23 = Z.y
set rotation.m33 = Z.z
И самая ложная строка
set rotation = MATRIX3.New_0()
Это создаст нулевую матрицу, то есть матрицу, все значения которой - нули. Базовая же матрица поворота, это единичная матрица, то есть матрица, чья главная диагональ состоит из единиц, а все остальное - нули.
Но это просто заметки, в текущей версии этих участков кода больше нет.
там 2 баффа, для ближнего и дальнего боя. Ты поменял 1 из баффов, а другой не поменял, все дела.
Просто можно откопировать его в строке баффов и написать 2 раза.
Пункт " убить боевую единицу" отвечает за то сможет ли урон от яда убить Юнита, если флаг не установлен то у Юнита останется 1-2 хп. Но яд не может его убить.
Разумеется не работают яд. Стрелы на маг иммунитет, ибо это активный автокаст.
Чтобы автокаст стрелы работали на маг. Имун нужно чтобы способность относилась к герою, требуемый для изучения уровень был выше 1. Вот и все.
darkowlom, ну я сабжом расставил нужные текстуры. Из всего что пора пришло в голову только использовать триггер "Окружение" и в нужных местах областями ставить текстуры. Но это как муторно.. Вот и решил спросить можно ли обойти ограничения.
Это делается функциями GetTerrainType и SetTerrainType.
Рисуешь на тех же самых текстурах определенную допустим квадратную локацию.
Затем for стартовоеX до конечноеX внутри for СтартовоеY до КонечноеY если getterraintype = точтонадозаменить то setterraintype на другую текстуру.
Других адекватных методов нет. Триггер который ты привел использует локации (точки), а значит - это возня с точками - возможно утечки.
Я используя эти функ целиком всю карту стираю размера 256x256 и отрисовываю 10к тайлов, в одном проекте). Лаг если и есть во время перерисовки - то незаметный, не больше 0.5сек
Идея!
В модели один слой, а можно выделить ветви и на новый слой их, а там уже можешь делать смещение без коверкания наложения текстуры.
Что-то с моделью этой, не получается провернуть указанную операцию, постоянно вылетает ошибка.
Насколько я понял, тебе нужно просто сменить текстуру. Для этого тебе по меньшей мере нужна текстура. Можно взять либо стандартную, либо создать самому (что довольно просто, если знать как).
Чтобы создать текстуру, возьми любое изображение, открой его в ФШ и сохрани как tga 32 бит с размером до 512х512 (вроде бы можно делать любой размер, не превышающий 1024х768, но я советую сохранять пропорции и делать размер не больше 512х512, или кратных половине этого числа (256/128/64/32) , за тем открой в War3 Image Extractor и переведи формат tga в blp. Потом открываешь модельку - редактор текстур и переименовываешь нужную текстуру в ту которая тебе нужна (они должны быть в одной папке) жмешь - Enter - .
Смотри карту: xgm.guru/files/100/219921/comments/408338/0.w3x
Там для героев созданы их копии с другой моделью и нестандартные способности на основе способности Тёмный, которая заменяет юнита на указанного другого. Такой вариант не меняет имя героя, порядок предметов в инвентаре, кулдаун на предметах и способностях, но что-то упоминали ранее о возможных глюках с наложенными заклинаниями. Триггерно при использовании способности не на иллюзии героя добавляем ему нестандартную способность нужного типа.
Вариант с заменой юнита, примерно как ты описал, приведёт к сбросу имени, опыта, способностей, кулдаунов, предметов и заклинаний.
Вариантом морфа героя через руны не умею пользоваться.
Вариант с заменой текстуры персонажа через способность Вырвать дерево требует замены текстур деревьев в карте, а это плохо, так как героев много. Ещё это подразумевает умение работать с 3D-редакторами, которого, как предполагаю, у тебя нет.
сделай ландшафт этого места с помощью инструмента "повысить на 1/на 2"
замени рынку модель, к примеру, на некрополь (потому что он красиво парит, хотя можешь на что угодно другое, что выглядит в небе более менее эстетично) и сделай вид, что парящий высоко в небе некрополь с барыгой - это не баг, а фича
Кстати, у меня вот только что мыслышка возникла. А попробуй убрать рынку галочку с поля "является зданием", тем самым превратив его из здания в юнита. Может, хоть это поможет
У декораций для вариаций есть несколько моделей с тем же именем и припиской: ...00, ...01, ...02... А в Редакторе объектов для модели указывается только имя без приписки. У башен же есть несколько вариаций анимации Stand, которые идут для Смотровой башни, Осадной башни, Стрелковой башни и Магической, странно, что у тебя отображает лишь Смотровую и Осадную. Запамятовал, можно ли триггером выставлять декорациям теги анимации, но если да, то добавляй тег Смотровой башни. Другой вариант - сделать в Редакторе объектов Боевую единицу Башню со способностью Москиты, чтобы она была невыбираема. Способность эту можно поставить через JNGP или выбрав строку со способностями, нажав Shift+Enter, напечатать Aloc.
bazeba, чтобы мазохисты могли убирать часть утечек и таким образом и дальше заниматься мазохизмом
там ещё точка утекает
Position of () создаёт точку которая утекает
Да, но сами текстуры находятся в Terrainart/.../
Это похоже что варовские архивы надо обсматривать.
Sylvanas, я просмотрел архивы и вот что нашел: В архивах Вара (War3 и War3x) есть другие архивы, в их "корне" (они находятся вне папок). Эти архивы - маленькие (названы одной буквой). В них - текстуры клиффов для каждого вида местности. В папке "TerrainArt" (находится в War3 и в War3x) есть файл-таблица Excel: CliffTypes.slk - он содержит ссылки на клиффы. По-видимому, этот файл ссылается на клиффы внутри маленьких архивов, игра по этим ссылкам считывает их из малых архивов и воспроизводит в игре. Все эти клиффы в малых архивах имеют имена "Cliff1" и "Cliff0". Т.е., текстуры клиффов разных видов местности (которые непосредственно считываются Варом) имеют одинаковое имя И находятся как бы в разных "папках" (малые архивы внутри основного). Вот почему возник такой глюк с заменой одного файла.
Hargeus, тут несколько вариантов возможно. Первым делом проверь пути к импортированным файлам, не оставил ли в пути к текстуре "war3Imported\", который обычно надо удалять?
Если с этим нормально, то текстура могла быть не прописана в модели, как указал Hate. Кидай модель и текстуру в одну папку без кириллицы в пути к ней, например, в корневую папку диска. Открываешь модель в w3me, нажимаешь Windows->Texture Manager, там щёлкаешь правой кнопкой мыши и в меню Import, указываешь свою текстуру. Потом открываешь Windows->Material Manager, где перебираешь все элементы списка в поисках текстуры, которую надо заменить, меняя её на свою. Либо создаёшь новый Material со своей текстурой, а далее в Geoset Manager перебором подставляешь свой материал на место других и обратно, пока не найдёшь нужную поверхность.
Если получилось всё нормально, то сохраняй, если что-то не вышло, либо в игре всё равно лишь тень модели, то приложи сюда карту с моделью, посмотреть в чём дело может быть.
8gabriel8, приоритет менять нельзя
стандартный ии использует это поле для контроля юнитов
пишем свой ии в котором вместо приоритета юзаем свою переменную которой можем задавать любое значение 8gabriel8:
Но для меня это путь в Москву через Владивосток
ну если между тобой и Москвой находится Владивосток то иначе никак(а вар3 как раз расположен за Владивостоком)
avuremybe, я уже впринципе нормально их знаю, но не знаю как лучше реализовать подобное.
Нашел решение. На событие боевая единица умирает выбирать врагов в диапазоне откидывая тех кого невидно и атаковать случайного из них.
//globals
integer array VariousFramesAddresses
constant integer GOLD_TEXTFRAME_ADDRESS_INDEX=1
constant integer LUMBER_TEXTFRAME_ADDRESS_INDEX=2
constant integer UPKEEP_TEXTFRAME_ADDRESS_INDEX=3
constant integer SUPPLY_TEXTFRAME_ADDRESS_INDEX=4
//memhack init
set pGetFrameTextAddress = GameDLL + 0x61C7B0
function GetFrameTextAddress takes string name, integer id returns integer
return CallFastCallWith2Args(pGetFrameTextAddress, GetStringAddress(name), id)
endfunction
function GetResourceBarsAddresses takes nothing returns nothing
local integer a=GetFrameTextAddress("ResourceBarGoldText",0)
if a>0 then
set VariousFramesAddresses[GOLD_TEXTFRAME_ADDRESS_INDEX]=a
endif
set a=GetFrameTextAddress("ResourceBarLumberText",0)
if a>0 then
set VariousFramesAddresses[LUMBER_TEXTFRAME_ADDRESS_INDEX]=a
endif
set a=GetFrameTextAddress("ResourceBarSupplyText",0)
if a>0 then
set VariousFramesAddresses[SUPPLY_TEXTFRAME_ADDRESS_INDEX]=a
endif
set a=GetFrameTextAddress("ResourceBarUpkeepText",0)
if a>0 then
set VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX]=a
endif
endfunction
call CallThisCallWith2Args(GameDLL+0x60CA10,VariousFramesAddresses[UPKEEP_TEXTFRAME_ADDRESS_INDEX],GetStringAddress("random str "+I2S(GetRandomInt(1,2000))))
Ну содержимое у restore само собой разное, в детекте урона новый хук на выход, вам нужна функция загрузки библиотеки?
Это же дело над:
function LoadLibrary takes string nDllName returns integer
if pLoadLibraryA == 0 then
set pLoadLibraryA = GetModuleProcAddress("Kernel32.dll", "LoadLibraryA" )
endif
if pLoadLibraryA != 0 then
return CallStdcallWith1Args(pLoadLibraryA,GetStringAddress(nDllName))
endif
return 0
endfunction
Никак нельзя отключить ИИ нейтральных игроков, ваще никак! Один и тот же вопрос бля каждую неделю.
Не используйте нейтралов в качестве ходячих и атакующих крипов, не оберётесь багов.
Насчет умных - а как в доте сделано, а там это сделано только когда играют обсервы + там пипец много костылей или багов, вроде реаз в 3 делать каждому юниту -SetUnitPosition в его текущие координаты, полностью тригггерный ии башен и автоатаки крипов (это внезапно еще и ресурсоёмко).
а почему так? отравленное оружие настраивает на сколька понизить в %. а сколько не ставь, все одно. мб что-то не правильное. абилка что ли бракованная
все врубился, понял формулу: скорость = Текущая скорость - (Текущая скорость * процент снижения)
слишком большие проценты ставил, в результате не видел, и выходило ниже скорость. А так как стоят ограничения в скорости (мин = 150, макс = 400 в константах), то упиралась в минималку, и не видел изменения, из-за чего ошибочно начал теории строить.
в абилках "отравленное оружие" и "яд" дриады - поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки .
Вопрос решён. Оказывается это всё из-за моей тупости и из-за того, что чем больше войск заливается, тем меньше урона каждый из них получает. Если тестить по одному футмену, то урон нормальный, а если тестить группу, то урон уменьшается.
Если нужна карта, то могу скинуть :)
Но, думаю, что проблема не в ней, да и мой "суперпроект" раскрывать не хотелося.
Повтори действие наново, удали нестандартную модель, переназначь модель орудийного расчета и вообще всегда делай копии своей карты, а вообще делай эксперементы в разних картах а то что получилось лишь тогда пихай в карту....
8gabriel8, Вот, упрямый ведь! Берёшь скачиваешь свою модель, которую ты кинул в топик, рассчитываешь границы, импортируешь, для точности в новую карту 32x32 и если после этого портрет невидим, я в блоге напишу, что я гей. Конечно при условии, что ты все правильно сделаешь.
Если нужно, чтобы было 2 в одном, то, думаю, тут надо чуток триггеров, надо сделать 2 способности, одну из которых скрыть, а другой дать всё описание. И запускать вторую триггером, через событие запуска заклинания.
Нет, далеко не все фишки и особенности известны. Все способности описаны в движке игры, защита от магии горного великана это клон множества абилок защиты от магии, главная их суть - выдать классификацию герой юниту. Т.е после появления этой способности горный великан становится героем и его нельзя полиморфить, переманивать и так далее.
Применять на маг имунных можно только высшие заклинание - т.е только геройские, у который требование к уровню выше 1, в до целях уязвимые\неуязвимые.
Я бы удалил все файлы из данной карты, затем вставил туда все файлы из бекапа, а потом макросом прошелся по каждому файлу, изменив ему стандартный путь на нужный. Рекомендую макрос Easy Macro Recorder.
Вариации работают так: в адресе файла модели декорации указывается типа [MyModel].mdx, но этого файла на самом деле нет, а есть только файлы вариации типа [MyModel]0.mdx, [MyModel]1.mdx, [MyModel]2.mdx и т. п.
система урона + ледяные стрелы = при получении урона, идет проверка на бафф, удаляешь бафф и, либо кастуешь даммиком способность кислотная бомба или духовное пламя с отриц. значением минус в том что бафф будет висеть как положительный. Либо под таймером даешь даешь способность повышения защиты с отриц. значением.
Учитывая что 21 век, систему урона найти и поставить, не составит труда.
Нашёл решение для тебя.
Пол-ночи провозился, но нашёл. почему-то это стало делом чести - открыть сию карту в редакторе
В общем, берёшь архив из аттача и тупо суёшь папку UI в корень варкрафта. После этого карта будет открываться любым вариантом редактора - как JNGP (любым), так и (даже!) стандартным.
Важно: локальные файлы должны быть разрешены.
Только там такой срач и дичь, что лучше реально своими руками с нуля писать...
» WarCraft 3 / Не работает стандартный AI
» WarCraft 3 / Почему не хотят двигаться?
» WarCraft 3 / Не видно иконки спела
» WarCraft 3 / Вопрос по моделированию
» WarCraft 3 / Способность канал!
» WarCraft 3 / Способность из доты
» WarCraft 3 / Что не так с игроками
» WarCraft 3 / Как сделать юнита не выбираемым?
» WarCraft 3 / Проблемы с Текстурами
» WarCraft 3 / атака в движении
» WarCraft 3 / Способности Яда
» WarCraft 3 / По текстурам
» WarCraft 3 / Парящие острова
» WarCraft 3 / Вариации декораций
» WarCraft 3 / Правильно ли я сделал
» WarCraft 3 / Приоритет атаки
» WarCraft 3 / Мемхак
» WarCraft 3 / Передвижение
» WarCraft 3 / Анимации портрета
» WarCraft 3 / Благословение Элуны
» WarCraft 3 / Удобный Импорт
» WarCraft 3 / Использование скилла в стане
» WarCraft 3 / Триггерная или стандартная способность?
» WarCraft 3 / При изучение способности иконка пропадает.
» WarCraft 3 / Не получается импортировать